package com.example.gestureprac.repository

import com.example.gestureprac.model.GestureEvent
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

/**
 * 手势事件仓库，处理手势数据的存储和获取
 */
class GestureRepository {
    
    // 模拟存储手势事件历史
    private val gestureHistory = mutableListOf<GestureEvent>()
    
    /**
     * 保存手势事件
     */
    suspend fun saveGestureEvent(event: GestureEvent) {
        withContext(Dispatchers.IO) {
            // 在实际应用中，这里可能会将事件保存到数据库或其他存储介质
            gestureHistory.add(event)
            // 限制历史记录数量，避免内存占用过大
            if (gestureHistory.size > 100) {
                gestureHistory.removeAt(0)
            }
        }
    }
    
    /**
     * 获取最近的手势事件
     */
    suspend fun getRecentGestureEvents(limit: Int = 10): List<GestureEvent> {
        return withContext(Dispatchers.IO) {
            gestureHistory.takeLast(limit).reversed()
        }
    }
}